package com.code.day16DuoXian2.not02;

/**
 * 消费者类 - 实现Runnable接口
 * 负责消费包子并向生产者发送信号
 */
public class Product01 implements Runnable {
    // 共享的包子铺资源
    private BaoZiPU baoZiPU;

    /**
     * 构造函数
     * @param baoZiPU 共享的包子铺对象
     */
    public Product01(BaoZiPU baoZiPU) {
        this.baoZiPU = baoZiPU;
    }

    /**
     * 消费者的运行逻辑
     * 循环消费包子并在适当时机通知生产者
     */
    @Override
    public void run() {
        while (true) {
            // 同步代码块，确保线程安全
            synchronized (baoZiPU) {
                try {
                    // 模拟消费时间间隔
                    Thread.sleep(100L);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
             baoZiPU.getCount();
            }
        }
    }
}
